Well, first of all, stdcall is not the normal calling convention for class member functons - it's something called "thiscall". Non-member functions (and statics) are called with cdecl calling convention.

As Elysia's warning list points out, it's not legal to use call modifiers on constructors and destructors (because the code that calls the constructor is not part of your source-code, and it makes assumptions on the calling convention).

Of course, passing arguments in registers is an advantage in most compilers, but if the function is inlined, it doesn't make any difference - but registers are scarce resources in x86 (32-bit) processors, so using some of the registers for arguments isn't ALWAYS a good idea, because it makes it harder for the compiler to find scratch-registers for temporary results when calculating the arguments - use with care.

--
Mats